package rmiteste;

import java.rmi.Naming;
import java.rmi.RMISecurityManager;

public class Servidor {

    private static Servidor serv;
    private static Interfaces m;

    public Servidor(String ip) {
        /*
         * A primeira coisa que o método main deve fazer é instalar um SecurityManager
         * também com o intuito de proteger os recursos da máquina local. 
         */

        if (System.getSecurityManager() == null) {

            System.setSecurityManager(new RMISecurityManager());
        }

        try {
            /*
             * Cria uma instância do objeto mensageiro para os clientes invocarem
             */
            m = new Mensageiro();
            /*
             * Registra o identificador do objeto remoto pelo nome
             * Se um objeto ja foi registrado com bind o método rebind
             * sobrescreve o registro
             *
             */
            Naming.rebind("rmi://" + ip + "/MensageiroService", m);
        } catch (Exception e) {
            System.out.println("Trouble: " + e);
        }
    }

    public static void main(String[] args) {
//		 new Servidor(args[0]);
        serv = new Servidor(args[0]);
    }

    /**
     * @return the serv
     */
    public static Servidor getServ() {
        return serv;
    }

    /**
     * @param serv the serv to set
     */
    public static void setServ(Servidor _serv) {
        serv = _serv;
    }

    /**
     * @return the m
     */
    public static Interfaces getM() {
        return m;
    }

    /**
     * @param m the m to set
     */
    public static void setM(Interfaces _m) {
        m = _m;
    }
}
